昨天有提及「要學會Camunda要先知道甚麼是BPMN」,BPMN也算是要建立業務流程的國際通用語言,所以今天我們利用大概10分鐘的時間來認識BPMN。
BPMN 2.0是一種流程建模語言,用於視覺化業務流程。通過符號和圖形表示活動、參與者、任務等,幫助組織理解、設計和改進流程。也因為圖形化方法使得流程變得易於理解,從而促進了流程優化和溝通。
💡 Camunda 也是基於BPMN 2.0的圖形化方法建立流程。
參與者(Participants)是指參與流程的對象(可以是組織、角色、系統或個人),代表流程中活動的執行者。參與者主要包括池(Pool)和通道(Lane)。
參與者示意圖
(圖片來源:筆者繪製,工具:canva)
池(Pool)和通道(Lane)定義了流程中的職責。
池(Pool)在其所處的環境中具有明確的團隊邊界,例如: XX公司。
池示意圖
(圖片來源:筆者繪製,工具:canva)
通道(Lane)則始終位於某個池(Pool)或另一個通道(Lane)中,通道(Lane)與同一池中的其他通道(Lane)可以無限制地通信。
通道示意圖
(圖片來源:筆者繪製,工具:canva)
在台灣XX公司有四個部門需要參與流程。台灣XX公司可以被定義劃歸為一個池,而這四個部門可以被定義劃歸為四個不同的通道。在同一部門內部,也就是在同一通道中,一系列的任務可能會由一個人執行,或者由具有相同職責的其他人執行。換句話說,通道的參與者可以是個人,也可以是具有相同職責的多個人。
台灣XX公司流程劃分
(圖片來源:筆者自製,使用bpmn.io)
💡 符號解釋
1.池(Pool)
(圖片來源:Business Process Model and Notation(BPMN))
2.通道(Lane)
(圖片來源:Business Process Model and Notation(BPMN))
通道(Lane)可以認定為流程中的參與者,也會因為性質的關係,在流程執行中的扮演不同角色。此外,通道也可以將不同的任務或子流程分組,分派給不同的任務管理者。
在下面這個範例中,流程管理員將3個階段分別指派給張小明、李小華和王小東。
當張小明完成階段一後,李小華會接著執行階段二,然後輪到王小東執行階段三。
在這個範例中,流程管理員具有最高的管理權限,負責編排各階段的執行。
參與者流程範例1
(圖片來源:筆者自製,使用bpmn.io)
💡 符號解釋
1.開始事件(Start Event)
(圖片來源:Business Process Model and Notation(BPMN))
2.結束事件(End Event)
(圖片來源:Business Process Model and Notation(BPMN))
3.活動(Activity)
(圖片來源:Business Process Model and Notation(BPMN))
4.順序流(Sequence Flow)
(圖片來源:Business Process Model and Notation(BPMN))
然而,在實務上真的會如此嗎?會有管理者負責統籌流程、協調任務的傳遞嗎?實際上並沒有這樣的情況。
如果所有參與者都在同一個組織(池)內,我們需要明確地對組織間的協調合作進行建模。這種情況下,我們需要為每位任務的負責人分配一個獨立的通道,每個通道代表著微型流程,這些微型流程通過訊息的傳遞相互聯繫,進而將整個流程串聯起來。
參與者流程範例2
(圖片來源:筆者自製,使用bpmn.io)
💡 符號解釋
1.訊息開始事件(Message Start Event)
(圖片來源:Business Process Model and Notation(BPMN))
2.順序流(Message Flow)
(圖片來源:Business Process Model and Notation(BPMN))
顧客透過菜單選擇所想要的飲料,爾後進行電話訂購。當飲料店接獲顧客的訂單後,立即開始製作飲料,隨後由店家的外送員進行運送,在指定地點現場與店家的外送員完成付款。
💡 外送員假定是店家店員,並非是由外送平台派員
從上述流程中,可明確劃出二個主要參與者,分別為顧客和飲料店。
從飲料店(60嵐)的角度進行模擬
飲料店(60嵐)的通道會有三個,接單員、製作員、外送員,動作會有接收訂單、製作訂單、外送、收款。
飲料店外送實務1
(圖片來源:筆者自製,使用bpmn.io)
從客戶的角度進行模擬
從想喝飲料開始,會經歷選擇飲料、打電話下單、收到飲料、付款、喝飲料,有可能飲料店忘記製作,所以有設計催單的過程。
飲料店外送實務2
(圖片來源:筆者自製,使用bpmn.io)
客戶電話點餐流程與飲料店的流程結合起來搭建模型。
飲料店外送實務3
(圖片來源:筆者自製,使用bpmn.io)
💡 符號解釋
1.定時器中間事件(Timer Intermediate Event)
(圖片來源:Business Process Model and Notation(BPMN))
2.排他網關(Exclusive Gateway)
(圖片來源:Business Process Model and Notation(BPMN))
3.並行網關(Parallel Gateway)
(圖片來源:Business Process Model and Notation(BPMN))
4.事件網關(Event Gateway)
(圖片來源:Business Process Model and Notation(BPMN))
大家仔細想想,其實,上述流程仍有一些不盡完善之處。如在【飲料店外送】的情境中,有些事件和任務之間存在交叉引用,如付款等。此外,有些任務的執行可能對其他參與者不可見,例如製作珍珠奶茶、喝飲料等。
對於使用者而言,區分任務的可見性顯得相當重要。從嚴格的語義角度來看,【飲料店外送】中的「接到訂單」並不準確,因為訊息事件通常指的是從流程外部接收的訊息,但在此模型中並非如此。
為了解決上述問題,可以利用【協作圖(Collaboration Diagram)】呈現參與者之間的合作關係。在建模時,可以控制協作圖的不同粒度。例如,可以僅顯示店家內部各部門之間之間的協作,或進一步展示公司與公司之間的協作。
為了修正所顯示的誤解,以及提供更佳的視覺呈現,我們可以運用訊息流的方式將不同的通道(參與者)聯繫在一起。這樣,我們可以對上述流程進行重新塑模。
飲料店外送實務4
(圖片來源:筆者自製,使用bpmn.io)
💡 符號解釋
1.訊息中間事件(Message Intermediate Event)
(圖片來源:Business Process Model and Notation(BPMN))
上圖,我們將客戶的流程進行的流程建模,同時也將飲料店內部流程也做建模。但大多數的情況下,建模者並不一定清楚所有參與者的內部流程細節。例如,每個人對於自家內部的運作流程知悉,但對於其他公司的內部流程則不知悉。在這種情況下,我們首先需要確定不同店家之間外送的接口(例如特定訊息的傳遞方式),接著才能基於這些接口進行建模。只要這些接口確定下來,整個外送流程就能順利展開
在這個例子中我們知道,飲料店跟客戶之間的接口有三個:
1.接單
2.接受客戶查單或者安撫客人
3.外送及收款
作為顧客,他並不太在意飲料店內部的運作細節。店員接到訂單後,可以立刻開始準備飲料;或者有可能因為缺乏某些原材料,需要馬上前往採購後才能開始製作。不過這些細節並不是顧客所關心的重點,他們只希望能按時收到訂購的飲料。因此,在進行建模時,可以將整個飲料店的運作過程簡化,以隱藏內部的細節不談。
飲料店外送實務5
(圖片來源:筆者自製,使用bpmn.io)
有時候我們只需要關注參與者之間互動的訊息,也就是介面定義,而不需在意各自內部的細節。這樣一來,我們可以將顧客點飲料送外送的流程簡化成更高層次的模型。
在實際建立模型時,整個流程是會相反的。首先會針對飲料店外送的情境,分析顧客與店家間的互動界面(訊息流程),進行模型化,再根據需求,分別對顧客訂購的內部流程與店家的接單流程進行建模,然後將這兩者緊密結合起來。
(1)只有最重要的事情才會在展開的池(Expanded Pool)中進行建模。
每個流程中只會有一個展開的泳池,如果場景更複雜可以依據需求,可以有一個或多個摺疊的游泳池,目的是為了突顯模型的重點。
💡 注意:
上面的例子中使用了多個展開的游泳池,純粹是為了方便讀者理解。在實際建模時,應盡量避免這種情況。
(2)每個通道都應該代表特定的角色。
以採購流程為例,可能會將採購部門作為一個通道。更好的做法是區分採購人員和採購經理,因為採購經理可能有審核複核等特殊職責。
(3)通道不應該代表個人。
以「王小明」為例,「王小明」代表特定的個人,在實務上是不被推薦的做法。因為整個流程的執行不應該因為某個人的原因而受阻。在實際流程中,任務的執行者不應該是某個特定的人,而應該是一個角色(某一個功能環節的螺絲),例如做飲料的店員。
我們現在已經知道在BPMN中的「參與者」關係,恭喜您對BPMN有初步的了解,明天我們再利用一些認識BPMN中的「事件」,我們一起加油吧~~
💡 如果有任何問題,歡迎在下方留言!! 筆者頭一回寫技術文,如果內容有誤,或者內容的呈現上有所缺陷,如果您願意,歡迎在下方留言給我呦~~
這是我的部落格,歡迎點擊閱覽喔~~會不定期更新文章